package com.ruoyi.linkage.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.linkage.Dto.LinkageStrategyListDto;
import com.ruoyi.linkage.Vo.LinkageStrategyAddVo;
import com.ruoyi.linkage.Vo.LinkageStrategyUpdateVo;
import com.ruoyi.linkage.Vo.LinkageStrategyVo;
import com.ruoyi.linkage.domain.LinkageStrategy;

/**
 * 联动策略Service接口
 *
 * @author pengjie
 * @date 2023-12-20
 */
public interface ILinkageStrategyService
{
    /**
     * 查询联动策略
     *
     * @param linkageStrategyId 联动策略主键
     * @return 联动策略
     */
    public LinkageStrategy selectLinkageStrategyByLinkageStrategyId(String linkageStrategyId);

    /**
     * 查询联动策略列表
     *
     * @param linkageStrategy 联动策略
     * @return 联动策略集合
     */
    public List<LinkageStrategy> selectLinkageStrategyList(LinkageStrategy linkageStrategy);

    /**
     * 新增联动策略
     *
     * @param linkageStrategy 联动策略
     * @return 结果
     */
    public int insertLinkageStrategy(LinkageStrategy linkageStrategy);

    int addLinkageStrategy(LinkageStrategyAddVo linkageStrategyAddVo);

    /**
     * 修改联动策略
     *
     * @param linkageStrategy 联动策略
     * @return 结果
     */
    public int updateLinkageStrategy(LinkageStrategy linkageStrategy);

    int editLinkageStrategy(LinkageStrategyUpdateVo linkageStrategyUpdateVo);

    /**
     * 批量删除联动策略
     *
     * @param linkageStrategyIds 需要删除的联动策略主键集合
     * @return 结果
     */
    public int deleteLinkageStrategyByLinkageStrategyIds(String[] linkageStrategyIds);

    /**
     * 删除联动策略信息
     *
     * @param linkageStrategyId 联动策略主键
     * @return 结果
     */
    public int deleteLinkageStrategyByLinkageStrategyId(String linkageStrategyId);

    /**
     * 查询
     *
     * @param linkageStrategyVo
     * @return 结果
     */
    List<LinkageStrategy> selectLinkageStrategyListOrder(LinkageStrategyVo linkageStrategyVo);


    /**
     * 查询联动策略列表返回PageInfo
     */
    PageInfo<LinkageStrategy> selectPage(LinkageStrategyVo linkageStrategyVo);


    List<LinkageStrategyListDto> getList(LinkageStrategyVo linkageStrategyVo);
}
